home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / ikap / etc2 / kasi.bas < prev    next >
BASIC Source File  |  2000-06-26  |  5KB  |  173 lines

  1. /* save "kasi.bas"
  2. /* save@"kasi.bas
  3. /************************************
  4. /*     Z-MUSICのワークを見る        *
  5. /*     歌詞を見ながら聞く           *
  6. /************************************
  7. /*          *******************************
  8. /*          *  ファイル名を指定しています *
  9. /*          *  ここを書き換えて下さい     *
  10. /*          *   ↓   **********************
  11. str filname = "yumes"  /* !拡張子は付けないで
  12. /*
  13. dim char cr(1) = {&HA}   /*改行マーク
  14. /*        X-BASICだと再生時に問題発生!
  15. /*        ぺけーBASIC=XB の使用を推奨
  16. /*        X-BASICで書き込んだデータを
  17. /*        X-BASICで再生する時は
  18. /*        EDか何かでセーブし直す必要有り
  19. /*----------------------------------------
  20. int x,y,lb,rb            /*マウス
  21. int mihari,a,b,c,d       /*見張る
  22. int count                /*カウント
  23. str lkasi[62]            /*歌詞のアクセス
  24. dim str kasi(32)[62]     /*歌詞
  25. str clkasi[6]            /*データアクセス
  26. dim str kasicount(32)[6] /*データ
  27. int retu                 /*作成データ行
  28. int lbbuf                /*左ボタン押しっぱなし対策
  29. int kasiretu             /*次に表示する行
  30. int pointretu            /*表示する行
  31. int fnum                 /*ファイル番号
  32. char hensyu = 0          /*データ作成中フラグ
  33. cls
  34. width 96
  35. mouse(4)
  36. kasiload()
  37. dataload()
  38. /* =========メイン========================
  39. m_play()
  40. count = 0
  41. repeat
  42.         locate 0,0
  43.         a = zm_work(1,7)       /*これが一体なんなのか
  44.         b = zm_work(2,7)       /*知らないのですが
  45.         c = zm_work(3,7)       /*取り敢えず使ってみたりして
  46.         print using"#####";a;
  47.         print using"#####";b;
  48.         print using"#####";c;
  49.         /*****************************************
  50.         /*左からa/b/cの順に表示されるので        *
  51.         /*ここをa/b/cのいずれかに書き換える      *
  52.         /* ↓ ************************************
  53.         d = c
  54.         /*---データを見張る
  55.         /*   変化が有ればカウント
  56.         if mihari <> d then count = count +1
  57.         mihari = d
  58.         print using"#####";count
  59.         /*---データが空でなければ
  60.         if hensyu = 0 then{
  61.                 if kasicount(pointretu) <> "" then{
  62.                         kasiretu = atoi(kasicount(pointretu))
  63.                         /*---カウントとデータが一致
  64.                         if count = kasiretu then {
  65.                                 locate 6,pointretu+1
  66.                                 color 1
  67.                                 print kasi(pointretu)
  68.                                 color 3
  69.                                 pointretu = pointretu + 1
  70.                         }
  71.                 }
  72.         }
  73.         /*
  74.         msstat(x,y,lb,rb)
  75.         /*---(カウント)データ作成
  76.         makecount()
  77.         /*---演奏終了でループ抜ける
  78.         if m_stat() = 0 then break
  79. /*---右ボタンでループ解除
  80. until rb = -1
  81. m_stop()
  82. msbtn(0,0,1)
  83. msbtn(0,1,1)
  84. /*-------データ書き込み選択---------------
  85. if hensyu = 1 then {
  86.         writedata()
  87. }
  88. /*----------------------------------------
  89. mouse(0)
  90. cls
  91. end
  92. /*=======================================
  93. /*--------データ作成---------------------
  94. func makecount()
  95. /*---左ボタンが一旦放された後、再び押されたら
  96. if lbbuf = 0 then{
  97.         if lb = -1 then {
  98.                 /*---一色を替えてデータ表示
  99.                 locate 0,retu+1
  100.                 color 2
  101.                 print using"#####";count;
  102.                 print " ";kasi(retu)
  103.                 locate 30,0
  104.                 print"データ作成中 次の行[左] 中止[右]"
  105.                 color 3
  106.                 kasicount(retu) = str$(count)
  107.                 retu = retu + 1
  108.                 lbbuf = 1
  109.                 hensyu = 1        
  110.         }
  111. }else{
  112.  if lb = 0 then lbbuf = 0
  113. }
  114. endfunc
  115. /* --------歌詞読み込み------------------------
  116. func kasiload()
  117. error off
  118. fnum = fopen(filname + ".doc","r")
  119. locate 0,1
  120. repeat
  121.         a = freads(lkasi,fnum)
  122.         kasi(count) = lkasi
  123.         count = count + 1
  124.         print "      ";lkasi
  125. until a = -1
  126. fclose(fnum)
  127. error on
  128. endfunc
  129. /* --------データ読み込み----------------------
  130. func dataload()
  131. locate 30,0
  132. count = 0
  133. error off
  134. fnum = fopen(filname + ".kas","r")
  135. if fnum = -1 then {
  136.         print "データ無し 作成=[左] 中止=[右]"
  137. }else{
  138.         print "データ有り 作成=[左] 中止=[右]"
  139.         repeat
  140.                 a = freads(clkasi,fnum)
  141.                 kasicount(count) = clkasi
  142.                 print kasicount(count)
  143.                 count = count + 1
  144.         until a = -1
  145. }
  146. error on
  147. endfunc
  148. /* -------データ書き込み-----------------------
  149. func writedata()
  150. locate 30,0
  151. print"書き込みますか?   Y=[左] N=[右]"
  152. for a = 0 to retu - 1
  153.         print using"#####";(atoi(kasicount(a)));
  154.         print " ";kasi(a)
  155. next
  156. /*---選択されるまで待つ
  157. repeat
  158.         msstat(x,y,lb,rb)
  159. until lb + rb <> 0
  160. /*---左ボタンが押されたら
  161. if lb = -1 then{
  162.         fnum = fopen(filname + ".kas","c")
  163.         for a = 0 to retu - 1
  164.                 clkasi = kasicount(a)
  165.                 fwrites(clkasi,fnum)
  166.                 /*------------------
  167.                 /*X-BASICだとうまく書き込めない
  168.                 fwrite(cr,1,fnum)
  169.         next
  170.         fclose(fnum)
  171. }
  172. endfunc
  173.